<template>
	<view class="content">
		<mescroll-body ref="mescrollRef" @init="mescrollInit" :down="downOption" @down="downCallback" @up="upCallback">
			<view class="list" v-for="(item,index) in list" :key="index">
				<view class="listfl">{{item.name}}</view>
				<view :class="{listfr:item.status == 0,listCur:item.status == 1}" @click="receive(item)">
					{{item.status == 0 ? '立即领取' : '已领取'}}
				</view>
			</view>
		</mescroll-body>

	</view>
</template>

<script>
	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
	export default {
		mixins: [MescrollMixin],
		data() {
			return {
				downOption: {
					auto: true //是否在初始化后,自动执行downCallback; 默认true
				},
				upOption: {
					auto: true, // 不自动加载
					// page: {
					// 	num: 0, // 当前页码,默认0,回调之前会加1,即callback(page)会从1开始
					// 	size: 10 // 每页数据的数量
					// },
					noMoreSize: 4, //如果列表已无数据,可设置列表的总数量要大于半页才显示无更多数据;避免列表数据过少(比如只有一条数据),显示无更多数据会不好看; 默认5
					empty: {
						tip: '~ 空空如也 ~', // 提示
						btnText: '刷新',
						// 列表第一页无任何数据时,显示的空布局
						// use : 是否启用
						// icon : 空布局的图标路径 (支持网络路径)
						// tip : 提示文本
						// btnText : 按钮文本
						// fixed : 是否使用定位,默认false; 配置fixed为true,以下的top和zIndex才生效 (transform会使fixed失效,所以最终还是会降级为absolute)
						// top : fixed定位的top值 (完整的单位值,如"100rpx", "10%";)
						// zIndex : fixed定位z-index值
					},
					textNoMore: "--我也是有底线的--" //没有更多数据的提示文本
				},
				list: []
			}
		},
		onLoad() {
			let that = this;
			uni.$on('updateDraw', function(data) {
				console.log('监听到事件来自 updateDraw ，携带参数 msg 为：' + data.msg);
				that.mescroll.resetUpScroll(); //调用加载
			})
		},
		onUnload() {
			uni.$off('updateDraw')
		},
		methods: {
			downCallback() {
				this.mescroll.resetUpScroll(); //调用加载
			},
			upCallback(page) {
				//联网加载数据
				console.log(page)
				let that = this;
				that.api.checkDrawRecord({
					page: page.num,
					limit: page.size
				}).then(res => {
					console.log(res)
					let curPageData = res.data.records;
					// 接口返回的当前页数据长度 (如列表有26个数据,当前页返回8个,则curPageLen=8)
					let curPageLen = curPageData.length;
					// 接口返回的总页数 (如列表有26个数据,每页10条,共3页; 则totalPage=3)
					let totalPage = res.data.pages;
					//设置列表数据
					setTimeout(() => { // 模拟效果
						if (page.num == 1) this.list = []; //如果是第一页需手动置空列表
						this.list = this.list.concat(curPageData); //追加新数据
						console.log(this.list, "-----");
						// 请求成功,隐藏加载状态
						//方法一(推荐): 后台接口有返回列表的总页数 totalPage
						this.mescroll.endByPage(curPageLen, totalPage);
					}, 500)
				})
			},
			// 立即领取
			receive: function(item) {
				let that = this;
				if (item.type == 0) {
					uni.navigateTo({
						url: '../getDraw/getDraw?id=' + item.id,
					});
				} else if (item.type == 1) {
					that.api.checkDrawRecord({
						id: item.id
					}).then(res => {
						that.tui.toast(res)
						setTimeout(function () {
							that.mescroll.resetUpScroll(); //调用加载
						},500)
					})
				}

			}

		}
	}
</script>

<style>
	page {
		width: 100%;
		box-sizing: border-box;
		letter-spacing: 2upx;
		background: #FFFFFF;
		color: #333333;
	}

	.content {
		width: 100%;
		box-sizing: border-box;
	}

	.list {
		width: 100%;
		box-sizing: border-box;
		padding: 20rpx;
		border-bottom: 2rpx solid #dcdcdc;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.listfr {
		width: 150rpx;
		height: 50rpx;
		background: #E42221;
		color: #FFFFFF;
		font-size: 26rpx;
		text-align: center;
		border-radius: 40rpx;
		line-height: 50rpx;
	}

	.listfl {
		width: calc(100% - 150rpx);
		box-sizing: border-box;
		padding-right: 20rpx;
	}

	.listCur {
		width: 150rpx;
		height: 50rpx;
		background: #F5F5F5;
		color: #333333;
		font-size: 26rpx;
		text-align: center;
		border-radius: 40rpx;
		line-height: 50rpx;
	}
</style>
